<?php
/**
 * Classe de controle de mensagens do sistema
 *
 * @author Paloma Menezes
 */
class Mensagem extends Conexao {
 
    //Define as colunas utilizadas pela tabela de mensagens;
    var $colMensagens = array(
        'id_usuario' => 'id_usuario',
        'mensagem' => 'mensagem'
    );

    //Função para inserção de nova mensagem;
    function novaMensagem($dados) {
        if (!is_array($dados)) $this->error('Não é um array', __LINE__);
        foreach ($dados as $k => $v ) $dados[$k] = "'".$this->escape($v)."'";
        $this->Executar("INSERT INTO {$this->tbMensagens} (".implode(',', array_keys($dados)).") VALUES (".implode(", ", $dados).")");        
    }
    
    //Função que verifica o tamanho da mensagem antes de enviar para o banco;
    function verificaMensagem($dados) {
        if(strlen($dados) < 1) {
            return false;
        } else {
            return true;
        }
    }
    
    //Função que faz a listagem das mensagens disponíveis para o usuários;
    function listaMensagem($id, $tipo) {
        $sql = "select id_mensagem, nome, mensagem from {$this->tbMensagens} 
                inner join {$this->tbUsuarios} on {$this->tbMensagens}.id_usuario = {$this->tbUsuarios}.id_usuario ";
        //Se o usuário não tiver permissão de Adm, só visualiza as msgs de quem ele segue;
        //Se for Adm, visualiza todas as msg, independente de seguir ou não;
        if($tipo == 'U') {
        $sql .= "where {$this->tbMensagens}.id_usuario in (select id_usuario from {$this->tbUsuarios}
                where id_usuario in (select id_usuario2 from {$this->tbVinculos} 
                where id_usuario1 = " . $id . "))
                or {$this->tbMensagens}.id_usuario = " . $id . " ";
        }           
        $sql .= "order by id_mensagem desc
                limit 10 ";
        
        $this->Executar($sql);
        if($this->ContarLinhas() > 0) {
            return $this;
        } else {
            return false;
        }
           
    }
}
?>
